package com.bjfu.mapper;

import com.bjfu.model.File;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface FileMapper {

    // 插入一个新的文件
    @Insert("INSERT INTO file (name, path) VALUES (#{name}, #{path})")
    @Options(useGeneratedKeys = true, keyProperty = "fileId", keyColumn = "file_id")
    void insertFile(File file);

    // 更新文件信息
    @Update("UPDATE file SET name = #{name}, path = #{path} WHERE file_id = #{fileId}")
    void updateFile(File file);

    // 删除文件
    @Delete("DELETE FROM file WHERE file_id = #{fileId}")
    void deleteFile(Long fileId);

    // 根据文件 ID 获取文件
    @Select("SELECT * FROM file WHERE file_id = #{fileId}")
    File getFileById(Long fileId);

    // 获取所有文件
    @Select("SELECT * FROM file")
    List<File> getAllFiles();

    // 保存文件元数据
    @Insert("INSERT INTO file (name, path, upload_time) VALUES (#{name}, #{path}, CURRENT_TIMESTAMP)")
    void saveFileMetadata(@Param("name") String name, @Param("path") String path);

    // 根据文件路径查找文件记录
    @Select("SELECT * FROM file WHERE path = #{filePath}")
    File getFileByPath(String filePath);
}
